Read-only memory (ROM) is often utilized to store data, such as firmware data, on an integrated circuit (IC). ROM is typically structured as an array of memory cell transistors, and is usually programmed with data during manufacture. By programming the array such that some memory cell transistors are distinguishable from others by sensing circuitry on the IC, logical states corresponding to binary data are stored on the ROM.
Various techniques are known for ROM programming. One approach is to utilize a high-grade interconnect mask to block contact to some of the memory cell transistors. Another approach is to use a channel implant to alter a threshold voltage of some of the memory cell transistors, providing a detectable threshold voltage difference. In yet another approach, gate oxides of different thickness may provide different threshold voltages for the memory cell transistors.